Index: portal/portal-impl/impl/src/java/org/sakaiproject/portal/charon/SkinnableCharonPortal.java =================================================================== --- portal/portal-impl/impl/src/java/org/sakaiproject/portal/charon/SkinnableCharonPortal.java +++ portal/portal-impl/impl/src/java/org/sakaiproject/portal/charon/SkinnableCharonPortal.java @@ -1500,6 +1500,7 @@ String loginUserDispId = null; boolean displayUserloginInfo = ServerConfigurationService. getBoolean("display.userlogin.info", false); + String userGreeting = null; // check for the top.login (where the login fields are present // instead @@ -1560,6 +1561,20 @@ User thisUser = UserDirectoryService.getCurrentUser(); loginUserDispId = thisUser.getDisplayId(); loginUserDispName = thisUser.getDisplayName(); + + // get user greeting from config + userGreeting = StringUtil.trimToNull(ServerConfigurationService.getString("display.userlogin.greeting")); + } + + // add header info links + String[] headerLinks = ServerConfigurationService.getStrings("headerlink"); + if (headerLinks != null && headerLinks.length > 0) { + List headerLinkList = new ArrayList(); + for (int i = 0; i < headerLinks.length; i++) { + headerLinkList.add(headerLinks[i]); + } + + rcontext.put("headerLinks", headerLinks); } // check for a logout text override @@ -1621,6 +1636,7 @@ { rcontext.put("loginUserDispName", loginUserDispName); rcontext.put("loginUserDispId", loginUserDispId); + rcontext.put("userGreeting", userGreeting); } rcontext.put("displayUserloginInfo", displayUserloginInfo && loginUserDispId != null); } Index: portal/portal-render-engine-impl/pack/src/webapp/vm/defaultskin/macros.vm =================================================================== --- portal/portal-render-engine-impl/pack/src/webapp/vm/defaultskin/macros.vm +++ portal/portal-render-engine-impl/pack/src/webapp/vm/defaultskin/macros.vm @@ -235,7 +235,10 @@ #if (!${loginTopLogin})